home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HK2.BAS Copyrigit(C) T.Komura / 家計簿システムHK /
- 30 ' / Version 2.0 /
- 31 ' Version 1.0 1993.01.01 公開バージョン / MAINプログラム /
- 32 ' 1.1 1993.07.26
- 33 ' 1.1a 1993.08.22 新規データファイル作成拒否時のjump先修正
- 34 ' 1.3 1994.02.01 hk v1.3対応 カレンダー機能追加
- 35 ' 1.4 1994.06.20 hk v1.4対応
- 36 ' 1.4a 1994.07.04 音声ファイル名バグ修正
- 37 ' 1.4e 1994.07.10 helpファイル表示機能追加
- 38 ' V2.0 L10a 1995.05.22 Version2へレベルアップ
- 39 ' V2.0 L10b 1995.06.28 HK2.CFGにバージョン情報を持たせる。
- 40 ' V2.0 L10c 1995.07.03 新規家計簿ファイル未作成時「設定」起動機能追加
- 41 ' 新規家計簿ファイル作成時処理状況を表示
- 100 '------------------------------------------------------------------
- 140 CLEAR ,,,,1024,300*1024
- 150 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 CONSOLE 0,24,0:MOUSE 0
- 221 MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 255 'ウインドウ関係座標配列
- 256 G=7:B=50
- 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
- 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
- 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 267 DIM MD_SB#(10465),MD_SW#(10465):'max : HELP window
- 268 'デ-タ配列
- 270 DIM DYN$(16),DRM$(16),DYN#(16),EVDT$(12,32)
- 274 DIM DYNX#(15) :'累計計算用一時記憶
- 275 DIM DYT$(15),DYM$(15),DYA$(15),DYR$(15) :'累計データ
- 276 DIM DYT#(15),DYM#(15),DYA#(15),DYR#(15) :'累計データ
- 280 DIM WRD$(15,128),WLN(15,128),WRDM(128) :'辞書データ
- 290 DIM COX$(10,5) :'定額データ
- 295 DIM DOC$(2000) :'HELPデータ
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 325 GOSUB *MCREAD:GOSUB *DCLOCKREAD
- 330 'CLS:COLOR 7:PRINT int((int(((155-14+1)+7)/8)*(415-131+1)*4+8-1)/8)
- 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449)
- 370 ON ERROR GOTO *ERROR
- 380 '
- 426 HKEND=10 :'終了ボタン番号
- 440 DOCF$="\HK2main.HLP"
- 500 '------------------------------------------------------------------
- 990 '////////////////////////////////////////////////////////////////////
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *SEFFECT1
- 1010 MESN=21:GOSUB *SNDMSG
- 1020 GOSUB *本日の日付
- 1035 MCN=1:GOSUB *MCDSET:MOUSE 1,320,64,1
- 1040 GOSUB *HLIDXファイルチェック
- 1100 *メイン選択 '////////////////////////////////////////////////////////
- 1110 MCN=1:GOSUB *MCDSET'
- 1120 MESN=1:GOSUB *MESDSP
- 1130 G=1:GOSUB *MCSELECT
- 1145 IF SWNO<0 THEN SWNO=10
- 1148 ' hk2 記入 検索 分析 cld 設定 日付 時計 help end
- 1150 ON SWNO GOTO *S01,*SPG,*SPG,*SPG,*SPG,*SPG,*S07,*S08,*S09,*S10
- 1160 GOTO 1100
- 2000 *S01
- 2020 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2022 MESN=10:GOSUB *MESDSP
- 2025 GOSUB *ABOUT表示
- 2030 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2040 GOTO *メイン選択
- 2050 '
- 2100 *S09
- 2120 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2122 MESN=9:GOSUB *MESDSP
- 2125 GOSUB *HKHELP
- 2130 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2140 GOTO *メイン選択
- 2150 '
- 2200 *S08
- 2220 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2222 MESN=11:GOSUB *MESDSP
- 2225 GOSUB *DGCLOCK
- 2230 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2240 GOTO *メイン選択
- 2250 '
- 2300 *S07
- 2320 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2322 'MESN=9:GOSUB *MESDSP
- 2330 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2340 GOTO *メイン選択
- 2350 '
- 3000 *SPG:'-----------------------------------------------------------
- 3010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3015 MESN=4+(B-2):GOSUB *MESDSP
- 3020 MESN=24:GOSUB *SNDMSG
- 3030 MCN=2:GOSUB *MCDSET:INTERVAL OFF:GOSUB *SEFFECT2 ' :STOP
- 3040 ON B-1 GOTO *PRG01,*PRG02,*PRG03,*PRG04,*PRG05
- 3100 *PRG01:RUN"HK2in.bas"
- 3110 *PRG02:RUN"HK2src.bas"
- 3120 *PRG03:RUN"HK2ANL.bas"
- 3130 *PRG04:RUN"HK2CLD.bas"
- 3140 *PRG05:RUN"HK2Cfg.bas"
- 8940 '
- 9000 *S10:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=HKEND:BST(G,B)=1:GOSUB *BTN_ONOFF
- 9030 MESN=2:GOSUB *MESDSP
- 9040 CMES$="家計簿システム HK2 を終了します。":GOSUB *確認
- 9050 IF CAUNO=1 THEN 9110
- 9060 G=1:B=HKEND:BST(G,B)=0:GOSUB *BTN_ONOFF
- 9065 IF IR=0 THEN GOTO 1040
- 9070 GOTO *メイン選択
- 9080 *S10_01'
- 9110 MESN=3:GOSUB *MESDSP:MESN=6:GOSUB *SNDMSG
- 9120 FOR II=1 TO 5000:NEXT II:INTERVAL OFF
- 9130 MOUSE 5:GOSUB *FADEOUT
- 9140 'SHELL "cd \"
- 9150 SYSTEM
- 9160 '
- 9200 *S10_02:'家計簿ファイルなし ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9230 MESN=15:GOSUB *MESDSP
- 9240 CMES$="[設定]で家計簿データファイルを設定":GOSUB *確認
- 9250 IF CAUNO=2 THEN *S10
- 9265 SWNO=6: GOTO *SPG
- 9360 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10105 LINE(0,463)-(639,479),PSET,0,BF
- 10115 SYMBOL(0,465),MES$,.75!,.75!,CM
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 7, 0, 1 :'--- 01
- 10215 DATA "家計簿システム HK2 ●適当なボタンを選んで押してください。
- 10220 DATA 2, 23, 6, 0, 0 :'--- 02
- 10225 DATA "家計簿システム HK2 を終了します。 よろしいですか? 終了-[OK] 終わらない-[NG]"
- 10230 DATA 2, 23, 5, 0, 0 :'--- 03
- 10235 DATA "家計簿システム HK2をご利用いただき、ありがとうございました。"
- 10240 DATA 2, 23, 4, 0, 0 :'--- 04
- 10245 DATA "★ [記入]モードに入ります。 しばらくお待ちください ・・・・・"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA "★ [検索]モードに入ります。 しばらくお待ちください ・・・・・"
- 10260 DATA 2, 23, 4, 0, 1 :'--- 06
- 10265 DATA "★ [分析]モードに入ります。 しばらくお待ちください ・・・・・"
- 10270 DATA 2, 23, 4, 0, 0 :'--- 07
- 10275 DATA "★ [カレンダー]モードに入ります。 しばらくお待ちください ・・・・・"
- 10280 DATA 2, 23, 4, 0, 0 :'--- 08
- 10285 DATA "★ [設定]モードに入ります。 しばらくお待ちください ・・・・・"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA "HKHELP★メインメニューの説明を表示しています。 頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]"
- 10300 DATA 2, 23, 5, 0, 0 :'--- 10
- 10305 DATA "毎度ご利用いただきまして、ありがとうございます... Comtan."
- 10310 DATA 2, 23, 4, 0, 0 :'--- 11
- 10315 DATA "ただいまの時刻です..."
- 10320 DATA 2, 23, 6, 0, 0 :'--- 12
- 10325 DATA "家計簿ファイルがありません。 家計簿ファイルを新規に作成しますか [OK]-作成 [NG]-作成しない"
- 10330 DATA 2, 23, 7, 0, 1 :'--- 13
- 10335 DATA "家計簿ファイルの作成開始年月を入力してください。"
- 10340 DATA 2, 23, 4, 0, 1 :'--- 14
- 10345 DATA "★新規家計簿ファイルを作成中です。"
- 10350 DATA 2, 23, 6, 0, 1 :'--- 15
- 10355 DATA "[設定]モードへ移行し、データファイルの設定をしてください。 [OK]-設定モードへ [NG]-プログラムを終了"
- 10600 *SEFFECT1'////////////////////////////////////////////////////////
- 10605 SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
- 10610 SCREEN 1,0,2,1:GOSUB *表紙表示
- 10612 SCREEN 1,1,3,1:
- 10620 FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
- 10621 ' LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
- 10622 LINE(0,240-II)-(639,240+II),PSET,0,BF
- 10623 NEXT II
- 10630 SCREEN 1,0,1,0
- 10635 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 10640 SCREEN 0:INTERVAL ON
- 10645 RETURN
- 10650 '
- 10700 *SEFFECT2'////////////////////////////////////////////////////////
- 10712 SCREEN 1,1,3,1:
- 10720 FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
- 10721 LINE(0,240+II)-(639,240-II),PSET,1,B
- 10723 NEXT II
- 10730 MESN=4+(B-2):GOSUB *MESDSP
- 10740 RETURN
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT\1+1
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "goyuku" :' 4 ごゆっくり
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "DOUZO" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索 'v1.3 bugfix 93.12.27
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
- 12515 READ MNDN :'当月の日数
- 12516 IF DY>MNDN THEN DY=MNDN :'V1.3!
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 12550 '
- 12600 *年月日変更: 'v1.3 bugfix 93.12.27
- 12601 GOSUB *WEEKN
- 12602 DY=DY+DDEF
- 12604 IF DY>MNDN THEN DY=1 :MDEF=+1
- 12606 IF DY<1 THEN DY=31 :MDEF=-1
- 12610 MN=MN+MDEF
- 12620 IF MN>12 THEN MN=MN-12 :YDEF=+1
- 12630 IF MN<1 THEN MN=12+MN :YDEF=-1
- 12640 YR=YR+YDEF
- 12650 IF YR<0 THEN YR=10000+YR
- 12660 IF YR>9999 THEN YR=YR-10000
- 12665 GOSUB *WEEKN
- 12668 DY$=RIGHT$(STR$(100+DY),2)
- 12670 MN$=RIGHT$(STR$(100+MN),2)
- 12680 YR$=RIGHT$(STR$(10000+YR),4)
- 12690 RETURN
- 12695 '
- 12700 *本日の日付
- 12705 DEF FONT "システム 12ドット"
- 12710 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 12720 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 12730 TY$=RIGHT$(STR$(TY),4)
- 12740 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 12750 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 12760 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 12770 TYMD$=TY$+"."+TM$+"."+TD$
- 12780 LINE(475,5)-(560,17),PSET,0,BF
- 12790 SYMBOL(476,6),TYMD$,.75!,.75!,7
- 12800 SYMBOL(542,6),WKM$,.75!,.75!,CW
- 12810 RETURN
- 12820 '
- 13000 '////////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 ' v2.0 グラフィックモード12dot用に改造 1994.07.30 T.Komura
- 13004 ' v2.1 マルチカラムに改造 1994.09.02 T.Komura
- 13005 ' v2.2 編集文字を初期表示するように改造1995.04.29 T.Komura
- 13006 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13020 ' 入力 = LX,LY : 表示開始座標 LG : 行数
- 13030 ' L$(ii): 初期文字列 LP : 行ピッチ
- 13040 ' LC : 表示文字色 lb : 非編集行文字色
- 13050 ' LL : 最大文字数 cbc : 背景色
- 13060 ' LINS : 挿入モード=1 出力=L$(ii) : 入力後の文字列
- 13070 '
- 13080 LCSRCL=6:LLINCL=4
- 13090 DEF FONT "システム 12ドット"
- 13100 ' CR MR ML INS DEL BS CAN
- 13120 ' LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5 :'v1.1a
- 13130 CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL) :'2.1
- 13150 LA$=INKEY$:IF LA$<>"" THEN 13150
- 13160 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13170 LCSR=0:LGC=1 :'v2.1
- 13180 LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
- 13185 GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB# :'v2.0
- 13190 FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
- 13200 PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13210 SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB :'v2.1
- 13220 NEXT LGII :'v2.1
- 13230 *SETLG :'----------行セット :'v2.1
- 13240 LYY=LY+(LGC-1)*LP :LM$=L$(LGC) :'v2.1
- 13250 SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC :'v2.1
- 13260 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
- 13270 LCSRX=LCSR:GOSUB *LCSRDX
- 13280 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13290 GOSUB *LMREAD
- 13300 IF LMGB$="1" THEN GOSUB *LCSRDEC
- 13310 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13320 LA$=INKEY$:IF LA$="" THEN 13320
- 13330 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13340 IF CLA=0 THEN 13360
- 13350 ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13360 IF KANF=1 THEN *KANJI
- 13370 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13380 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13390 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13400 GOTO *KANJI
- 13410 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13420 IF LINS=1 THEN 13440
- 13430 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
- 13440 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13450 GOSUB *LCSRINC
- 13460 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13470 GOTO *IN1C
- 13480 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13490 ON KANF+1 GOTO 13500,13530
- 13500 KANF=1:KANW$="":KANW$=LA$
- 13510 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13520 GOSUB *LCSRD:GOTO *IN1C
- 13530 KANF=0:KANW$=KANW$+LA$
- 13540 IF LINS=1 THEN 13560
- 13550 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
- 13560 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13570 GOSUB *LCSR2INC
- 13580 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13590 GOTO *IN1C
- 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13610 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0 :'v2.1
- 13620 ' MOUSE 0: MOUSE 1,LMSX,LMSY,1:MCN=1:GOSUB *MCDSET :'v1.1a
- 13630 RETURN:'----------------------------------------------------------
- 13640 *MU :GOSUB *LMREAD2 '////////// up :v2.1
- 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
- 13655 GOTO *SETLG
- 13660 *MD :GOSUB *LMREAD2 '////////// down :v2.1
- 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
- 13675 GOTO *SETLG
- 13680 *MR :GOSUB *LMREAD2 '////////// Right
- 13685 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD :'v2.1
- 13690 GOSUB *LCSRINC :GOTO *MUD :'v2.1
- 13695 *ML :GOSUB *LMREAD2 '////////// Left
- 13700 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD :'v2.1
- 13705 GOSUB *LCSRDEC :GOTO *MUD :'v2.1
- 13710 *MUD:IF LCSC=0 THEN GOTO *IN1C '////////// line chg.ctrl:'v2.1
- 13715 IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
- 13720 IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
- 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13730 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13735 GOSUB *LCSRDX :GOTO *IN1C
- 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13745 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13750 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13755 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13760 *BS :GOSUB *LMREAD '////////// BackSpace
- 13765 IF LCSR=0 THEN GOTO *IN1C
- 13770 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
- 13775 GOSUB *LCSRDEC :LDEF=1:GOTO 13780
- 13780 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13785 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13790 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13795 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13800 GOSUB *LMREAD :GOTO *IN1C
- 13805 *LMREAD: '////////// Disp Char Read
- 13810 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13815 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13820 *LMREAD1:LMGD$=""
- 13825 FOR II=1 TO KLEN(LMX$)
- 13830 LMG=KTYPE(LMX$,II)
- 13835 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13840 LMGD$=LMGD$+LMD$
- 13845 NEXT II
- 13850 IF LEN(LMGD$)<=LL THEN 13860
- 13855 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13860 IF RIGHT$(LMGD$,1)<>"1" THEN 13870
- 13865 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13875 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13880 LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
- 13885 RETURN
- 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
- 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
- 13900 LCSRX=LCSR:RETURN
- 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
- 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0 :LCSC=-1
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
- 13945 GOSUB *LCSRD:RETURN
- 13950 *LMXDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.0 :'v2.1
- 13955 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0
- 13960 SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
- 13965 GOSUB *LCSRDX:RETURN
- 13970 *LMBDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13975 SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN :'v2.1
- 13980 '-------------------------------------------------------------------
- 14000 'マウス,ウインドウ関係サブルーチン集 v1.0 1995.05.14
- 14010 '--------------------------------------------------
- 14020 '
- 14030 'マウスカーソル形状セット v1.0 1994.02.13
- 14040 *MCDSET
- 14050 MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
- 14060 RETURN
- 14070 *MCREAD
- 14080 RESTORE *MCDATA
- 14090 FOR II=1 TO 3
- 14100 FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
- 14110 READ MC_X(II),MC_Y(II)
- 14120 FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
- 14130 FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
- 14140 NEXT II
- 14150 RETURN
- 14160 *MCDATA
- 14170 '指 ////////////////////////////////////////
- 14171 DATA 0,0
- 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
- 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
- 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
- 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
- 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
- 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
- 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
- 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
- 14180 'コーヒー///////////////////////////////////
- 14181 DATA 7,7
- 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
- 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
- 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
- 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
- 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
- 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
- 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
- 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
- 14190 '待った //////////////////////////////////////
- 14191 DATA 7,7
- 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
- 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
- 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
- 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
- 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
- 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
- 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
- 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
- 14200 '
- 14210 *MCDRAG 'ドラッグ -----------------------------------------------
- 14220 MOUSE 1,X_M,Y_M,1 :'現在位置にカーソルを設定
- 14225 MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
- 14230 MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
- 14235 GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
- 14238 X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
- 14239 Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
- 14240 MOUSE 4,X1,Y1,X2,Y2 :'最大移動域の設定
- 14245 GOSUB *MD_WLINED
- 14250 IF MOUSE(2,0)=-1 THEN 14245 :'枠移動
- 14255 LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC :'枠線消去
- 14260 PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB# :'旧ウインドウ背景表示
- 14265 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB# :'新ウインドウ背景保持
- 14270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW# :'新ウインドウ描画
- 14275 MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
- 14280 *MD_WLINED
- 14285 MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10) :'移動量取得
- 14290 W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
- 14295 W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
- 14300 LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC :'枠線移動
- 14305 LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
- 14310 MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
- 14315 MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
- 14320 RETURN
- 14400 '------------------------------------------------------------------
- 14405 *ボタン座標読み取り
- 14410 RESTORE *ボタン座標:READ SWGN
- 14415 FOR G=1 TO SWGN
- 14420 READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 14425 FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
- 14430 NEXT G
- 14435 RETURN
- 14500 '-----------------------------------------------------------------
- 14505 *BTN_ONOFF:'ボタンON_OFF表示
- 14510 IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
- 14515 BSC=1:BSB=15
- 14520 X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
- 14521 Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
- 14522 CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
- 14523 CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
- 14530 IF BSNDOFF=1 THEN 14540 :' WAIT SWAIT\10+1:GOTO 14540
- 14535 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
- 14540 BSNDOFF=0:RETURN
- 14600 '-----------------------------------------------------------------
- 14610 *MCSELECT:'マウスボタン選択
- 14620 SWERC=0:SWNO=0 :'リセット
- 14630 *クリック待ち
- 14640 IF MOUSE(2,0)=-1 THEN 14680 :'左クリック入力待ち
- 14650 IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN :'右クリックで終了
- 14660 IF MCKEY=1 THEN GOTO 14830 :'MCKEY=1: マウススキャン中断、キー入力受付
- 14670 GOTO *クリック待ち
- 14680 X_M=MOUSE(4,0):Y_M=MOUSE(5,0) :'座標取得
- 14690 FOR IMS=1 TO SWN(G) :'ボタン座標判定
- 14700 IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
- 14710 IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
- 14720 SWNO=IMS:IMS=SWN(G)+1
- 14730 NEXT IMS
- 14735 WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
- 14740 IF (SWPASS=1) OR (SWNO<>0) THEN 14830
- 14750 IF SWNO=0 THEN
- 14760 GOSUB *MCMIS:SWERC=SWERC+1 '誤指定警告表示
- 14770 IF SWERC>5 THEN
- 14780 MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG '誤指定警告音声案内
- 14790 MCN=1:GOSUB *MCDSET
- 14800 ENDIF
- 14810 ENDIF
- 14820 GOTO *クリック待ち
- 14830 SWPASS=0:SW1T=0:MCKEY=0
- 14840 RETURN
- 14850 *MCMIS
- 14860 MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
- 14870 RETURN
- 14880 '
- 14890 '
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15305 IF DCLOCKF=1 THEN GOSUB *DCLOCKD
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 15600 '////////////////////////////////////////////////////////////////////
- 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
- 15610 *DCLOCKREAD:'プログラム先頭で実施
- 15615 RESTORE *DCLOCKDATA
- 15620 FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT
- 15625 FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
- 15630 FOR DGII=1 TO 4:READ DGO(DGII):NEXT
- 15635 RETURN
- 15640 *DGCLOCK:'デジタル時計 -------------------------------
- 15645 G=4:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
- 15650 GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
- 15655 *DGMCSEL
- 15660 GOSUB *MCSELECT:'マウスボタン選択
- 15665 IF SWNO=0 THEN *DGMCSEL
- 15670 IF SWNO<0 THEN SWNO=1:'右クリックで終了
- 15675 ' end drag
- 15680 ON SWNO GOTO *DGS01,*DGS02
- 15685 *DGS02:'drag
- 15690 DCLOCKF=0
- 15692 GOSUB *MCDRAG
- 15694 DCLOCKF=1
- 15695 GOTO *DGMCSEL
- 15700 *DGS01:'end
- 15705 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 15710 DCLOCKF=0
- 15715 GOSUB *DCLOCKCLR
- 15720 SWNO=SWNOX
- 15725 RETURN
- 15730 *DCLOCKLOAD
- 15735 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15740 MOUSE 1,,,0
- 15745 LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 15750 MOUSE 1,,,1:RETURN
- 15760 *DCLOCKCLR
- 15765 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15770 RETURN
- 15775 '
- 15780 *DCLOCKD
- 15785 IF DGINIT=1 THEN 15795
- 15790 FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
- 15795 DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
- 15800 DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
- 15805 DGPT=1-DGPT
- 15810 FOR DGII=1 TO 4
- 15815 IF DG(DGII)=DGM(DGII) THEN 15840
- 15820 FOR DGJJ=1 TO 7
- 15825 IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
- 15826 IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
- 15830 PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
- 15835 NEXT DGJJ
- 15840 NEXT DGII
- 15841 IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
- 15842 PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
- 15843 PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
- 15845 FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
- 15850 RETURN
- 15855 '
- 18000 '------------------------------------------------------------------
- 18005 *HKHELP:' Copyrigit(C) T.Komura / HK2 /
- 18010 ' Version 1.0 1994.07.30 / helpプログラム /
- 18011 ' Version 2.0 1995.07.30 HK2ドラッグ対応
- 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 18016 G=3:SWNOX=SWNO:DOCDC=6:DOCBC=8
- 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
- 18026 MCN=1:GOSUB *MCDSET
- 18030 GOSUB *DOC初期表示
- 18035 *DC_MSINSEL
- 18040 SWPASS=1:GOSUB *MCSELECT:'マウスボタン選択
- 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
- 18043 IF SWNO<0 THEN SWNO=5:'右クリックで終了
- 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
- 18050 IF SWNO=5 THEN GOTO *SDC_05
- 18055 IF SWNO=6 THEN GOTO *SDC_06
- 18060 IF SWNO=7 THEN GOTO *SDC_07
- 18065 GOTO *DOCCTRL
- 18070 *DOCCTRL
- 18075 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 18080 DCCD=SWNO:GOSUB *DOC表示制御
- 18085 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 18090 GOTO *DC_MSINSEL
- 18095 *SDC_06: GOSUB *MCDRAG :GOTO *DC_MSINSEL
- 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
- 18105 *SDC_05:'終了
- 18110 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 18115 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18120 DOCCS=0:SWNO=SWNOX
- 18122 RETURN:'///////////////////////////////////////////////////
- 18125 '
- 18130 'sub routine---------------------------------------------
- 18135 *DOCTIFDSP
- 18137 MOUSE 1,,,0
- 18140 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18145 LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
- 18165 MOUSE 1,,,1:GOSUB *DOC名称表示
- 18170 RETURN
- 18175 *DOCFREAD:'helpファイル読み込み
- 18177 MCN=2:GOSUB *MCDSET
- 18180 DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
- 18185 IF EOF(1)=-1 THEN 18200
- 18190 DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
- 18195 GOTO 18185
- 18200 CLOSE #1:RETURN
- 18205 *DOC指定行表示
- 18210 GOSUB *DOCカーソル表示
- 18220 FOR DN=SDN TO EDN
- 18225 XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
- 18230 SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
- 18235 DCL=DCL+1
- 18240 NEXT DN:RETURN
- 18245 *DOC初期表示
- 18250 SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
- 18255 RETURN
- 18260 *DOC表示制御:'///////////////////////////////////////
- 18265 ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
- 18270 *DCC1:'------ 前行
- 18275 DSP=DSP-1 :IF DSP<1 THEN DSP=1 :RETURN
- 18280 SDN=DSP :GOSUB *DOC下シフト
- 18285 EDN=SDN :DCL=0 :GOSUB *DOC指定行表示 :RETURN
- 18290 *DCC2:'------ 次行
- 18295 DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
- 18300 SDN=DSP+23: GOSUB *DOC上シフト
- 18305 EDN=SDN :DCL=23:GOSUB *DOC指定行表示 :RETURN
- 18310 *DCC3:'------ 前頁
- 18315 DSP=DSP-24:IF DSP<1 THEN DSP=1
- 18320 GOTO *DCC51
- 18325 *DCC4:'------ 次頁
- 18330 DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18335 GOTO *DCC51
- 18340 *DCC5:'------ カーソル指定
- 18345 DSP=((INT(DOCN*DOCR))\24)*24+1
- 18350 IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18355 *DCC51
- 18360 SDN=DSP :EDN=SDN+23
- 18365 IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
- 18370 LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
- 18375 DCL=0:GOSUB *DOC指定行表示 :RETURN
- 18380 '------------------------------------------------------
- 18385 *DOC上シフト
- 18386 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18390 GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
- 18395 LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
- 18400 PUT@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18405 RETURN
- 18410 *DOC下シフト
- 18411 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18415 GET@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18420 LINE (X1,Y1 )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
- 18425 PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
- 18430 RETURN
- 18435 *DOCカーソル表示
- 18440 XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
- 18445 YDC1 =W_Y1(G)+53+INT(233*((DSP-1) /DOCN))
- 18450 YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
- 18451 A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A THEN YDC2=A-1
- 18455 YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
- 18460 YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
- 18461 A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
- 18465 IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
- 18470 LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
- 18475 LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
- 18480 DSPX=DSP :RETURN
- 18485 *DOC名称表示
- 18490 XDC=W_X1(G)+427:YDC=W_Y1(G)+7
- 18495 DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
- 18500 SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
- 18505 RETURN
- 18810 *DC_他エリア判定
- 18830 IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
- 18835 IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
- 18840 DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
- 18845 RETURN
- 18850 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19355 LINE(0,465)-(639,479),PSET,0,BF
- 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LINE(0,465)-(639,479),PSET,0,BF
- 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20105 PLAY "L16O7C<BAG>C<BAGR2>C<BAG>C<G>L4C"
- 20120 LOAD@ TIFDRV$+"\hk2base.tif",(0,0)
- 20130 DEF FONT "システム 12ドット"
- 20140 X1A=146:Y1A=200:XPA=326:YPA=100
- 20142 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 20144 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 20155 '
- 20160 ' INTERVAL ON
- 20180 RETURN
- 20190 '
- 20200 *HLIDXファイルチェック
- 20210 GOSUB *HKIOPN:CLOSE
- 20220 IF IR>0 THEN RETURN
- 20230 MESN=12:GOSUB *MESDSP
- 20240 CMES$="家計簿ファイル新規作成":GOSUB *確認
- 20250 ON CAUNO GOTO 20260,*S10_02
- 20260 GOSUB *ファイル年月入力
- 20300 GOSUB *新規ファイル作成
- 20302 IF FMAKE=0 THEN 20230
- 20305 MESN=4:GOSUB *MESDSP
- 20310 RETURN
- 20390 '
- 20400 *ファイル年月入力
- 20420 MESN=13:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 20430 SYMBOL(54*8,465)," 年 月",.75!,.75!,7
- 20440 GOSUB *本日の日付2
- 20450 YR$=TY$:MN$=TM$
- 20470 LX=54*8-4:LY=465 :LC=5:LL=4:LG=1:LP=1
- 20474 L$(1)=YR$:LINS=0:GOSUB *LKEYIN
- 20475 YR$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
- 20480 LX=54*8+6*6+4:LY=465:LC=5:LL=2:LG=1:LP=1
- 20484 L$(1)=MN$:LINS=0:GOSUB *LKEYIN
- 20485 MN$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
- 20510 LINE(0,463)-(639,479),PSET,0,BF
- 20520 SYMBOL(0,465),YR$+"年"+MN$+"月の家計簿ファイルを作成します。",.75!,.75!,6
- 20540 RETURN
- 20550 '
- 20700 *新規ファイル作成
- 20760 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
- 20770 GOSUB *確認
- 20780 ON CAUNO GOTO 20800,20875
- 20800 MESN=14:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 20810 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
- 20820 RI=IR+1:GOSUB *HKIPUT
- 20825 PCCD=1:PCMES$="新規家計簿ファイル作成":GOSUB *PROCD
- 20830 DEV$=SPACE$(128) :'------------ファイル作成
- 20835 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(52):NEXT JJ
- 20840 FOR RDY=1 TO 31
- 20844 LINE(70*8,465)-(639,479),PSET,0,BF
- 20845 SYMBOL(70*8,465),RIGHT$(STR$(RDY),2)+" / 31",.75!,.75!,4
- 20850 GOSUB *HKDPUT
- 20855 PCCD=3:PCCUR=RDY:PCMAX=31:PCINT=1:GOSUB *PROCD
- 20860 NEXT RDY
- 20865 MESN=14:GOSUB *SNDMSG
- 20866 PCCD=2:GOSUB *PROCD
- 20870 FMAKE=1:RETURN
- 20875 FMAKE=0:RETURN
- 20880 '
- 20900 STOP
- 21000 *本日の日付2
- 21010 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 21020 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 21030 TY$=RIGHT$(STR$(TY),4)
- 21040 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 21050 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 21100 RETURN
- 21110 '
- 22630 '
- 22900 '------------------------------------------------------------------
- 23500 *PROCDSP
- 23510 X0=178:XF=482:Y1=152:Y2=169
- 23520 XP=X0+INT((XF-X0)*RR/IR)
- 23530 LINE(X0,Y1)-(XP,Y2),PSET,1,BF
- 23540 RETURN
- 23550 '
- 29900 '------------------------------------------------------------------
- 30000 '
- 30100 *ABOUT表示
- 30105 X1A=146:Y1A=150:XPA=326:YPA=100
- 30106 MOUSE 1,,,0
- 30110 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 30120 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 30125 MOUSE 1,,,1
- 30130 CMES$=ABOUT$:GOSUB *確認
- 30150 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 30160 RETURN
- 30170 '
- 30580 '
- 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 31010 FOR II=0 TO 15
- 31020 PALETTE II,[16*II,16*II,16*II]
- 31030 NEXT II
- 31040 FOR II=0 TO 255 STEP 5
- 31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 31054 PALETTE JJ,[KK,KK,KK]
- 31056 NEXT JJ
- 31060 NEXT II
- 31070 RETURN
- 31080 '
- 31200 *確認
- 31205 G=2:SWNOX=SWNO:MOUSE 1,,,0
- 31210 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31220 LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
- 31225 PLAY "o6l4ce":MOUSE 1,,,1
- 31230 FOR II=1 TO 4
- 31232 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
- 31234 WAIT SWAIT\10+1
- 31236 LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
- 31237 WAIT SWAIT\10+1
- 31238 NEXT II
- 31239 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
- 31240 MESN=19:GOSUB *SNDMSG:'28chr
- 31241 G=2:GOSUB *MCSELECT'ボタン選択
- 31242 IF SWNO<0 THEN SWNO=2
- 31243 IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
- 31244 IF SWNO=0 THEN 31241
- 31245 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 31260 WAIT SWAIT\5+1
- 31270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31272 CAUNO=SWNO:SWNO=SWNOX
- 31275 RETURN
- 31280 '
- 32300 *PROCD:'処理状況表示
- 32310 ON PCCD GOTO *PC01,*PC02,*PC03
- 32320 *PC01
- 32330 GET@A(150,200)-(483,256),MD_SB#
- 32340 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
- 32345 SYMBOL(226,204),PCMES$,.75!,.75!,0
- 32350 RETURN
- 32360 *PC02
- 32370 PUT@A(150,200)-(483,256),MD_SB#
- 32380 RETURN
- 32400 *PC03:' pcmax,pccur,pcint
- 32410 XP0=157:YP0=240:XPM=477:YPM=250
- 32420 IF (PCCUR MOD PCINT)<>0 THEN RETURN
- 32430 XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
- 32440 LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
- 32450 RETURN
- 32460 '
- 32880 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 DRV$=LEFT$(DATDRV$,2)
- 35010 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
- 35015 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35030 OPEN "R",#2,FLN$
- 35040 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35050 IR=LOF(2)
- 35060 RETURN
- 35070 '
- 35100 *HKDOPN:'---------- 家計簿データファイルオープン
- 35105 DRV$=LEFT$(DATDRV$,2)
- 35110 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35120
- 35115 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35120 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 35130 OPEN "R",#1,FLN$
- 35140 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 35150 AR=LOF(1)
- 35160 RETURN
- 35170 '
- 35270 '
- 36100 *HKIPUT:'---------- インデックスファイル作成
- 36110 GOSUB *HKIOPN
- 36120 LSET I$(1)=IYM$
- 36130 LSET I$(2)=IMK$
- 36140 PUT #2,RI
- 36150 CLOSE #2
- 36160 RETURN
- 36170 '
- 36300 *HKDPUT:'---------- 家計簿データ書き込み
- 36310 GOSUB *HKDOPN
- 36320 R=RDY
- 36330 LSET D$(1)=DEV$
- 36340 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
- 36342 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
- 36343 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
- 36344 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
- 36345 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
- 36350 PUT #1,R
- 36360 CLOSE #1
- 36370 RETURN
- 36380 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.4 1994.06.19
- 39020 ' FOR HK T.Komura
- 39030 CFLNO=0
- 39040 OPEN "R",#1,"(1)HK.CFG"
- 39050 FIELD #1,1 AS D$
- 39060 IF LOF(1)=0 THEN *CFGFE1
- 39070 CLOSE
- 39080 OPEN "I",#1,"HK.CFG"
- 39085 GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$ [0]
- 39090 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$ [1]
- 39092 FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
- 39094 FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
- 39100 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$ [2]
- 39110 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$ [3]
- 39120 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$ [4]
- 39130 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$ [5]
- 39140 GOSUB *CFGREAD :'-- SNDMF [6]
- 39150 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39160 SNDMF=VAL(RIGHT$(CFG$,1))
- 39170 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$ [7]
- 39180 GOSUB *CFGREAD :'-- SWAIT [8]
- 39190 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39200 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39210 FOR II=1 TO 15 :' [9]-[10]
- 39220 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39230 NEXT II
- 39240 GOSUB *CFGREAD :'-- DICIF [11]
- 39250 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39260 DICIF=VAL(RIGHT$(CFG$,1))
- 39270 GOSUB *CFGREAD :'-- DICSF [11]
- 39280 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39290 DICSF=VAL(RIGHT$(CFG$,1))
- 39300 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$ [12]
- 39310 GOSUB *CFGREAD :'-- taxr$ [13]
- 39320 IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
- 39330 TAXR$=RIGHT$(CFG$,LEN(CFG$)-5)
- 39340 GOSUB *CFGREAD :'-- CALCF [14]
- 39350 IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
- 39360 CALCF=VAL(RIGHT$(CFG$,1))
- 39370 GOSUB *CFGREAD :'--SDAY [15]
- 39380 IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
- 39390 SDAY=VAL(RIGHT$(CFG$,2))
- 39400 SDAY$=RIGHT$(STR$(100+SDAY),2)
- 39410 IF SDAY>0 THEN MOFF=0 ELSE MOFF=-1
- 39420 GOSUB *CFGREAD :'-- SSYMD$ [16]
- 39430 IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
- 39440 SSYMD$=RIGHT$(CFG$,8)
- 39450 CLOSE
- 39460 RETURN
- 39470 *CFGREAD:'////////////////////////////////////
- 39480 IF EOF(1)<>0 THEN *CFGFE3
- 39490 LINE INPUT #1,CFG$:CFLNO=CFLNO+1
- 39500 IF LEFT$(CFG$,1)="/" THEN 39480
- 39510 RETURN
- 39520 '------------------------------------------------------------------
- 39530 *CFGFE1
- 39540 CFE$="HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39550 NOCFG=1:RETURN
- 39560 *CFGFE2
- 39570 CFE$="HK.CFGファイル 行番号"+STR$(CFLNO)+"の内容に誤りがあります。 家計簿を終了します。"
- 39580 GOTO *CFGFEP
- 39590 *CFGFE3
- 39600 CFE$="HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39610 GOTO *CFGFEP
- 39620 '-------------------------------------------------------------------
- 39630 *CFGFEP
- 39635 DEF FONT "システム 12ドット"
- 39640 LINE(0,463)-(639,479),PSET,0,BF
- 39645 SYMBOL(0,465),CFE$,.75!,.75!,6
- 39650 CLOSE :WAIT 100
- 39660 STOP
- 39670 '///////////////////////////////////////////////////////////////////
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 4 'SWGN スイッチグループ数
- 40020 '/////////////////////////////
- 40030 '-------------------- スイッチグループ[1] メインウインドウ
- 40050 DATA 10 :'ボタン個数
- 40060 ' X1 ,X2 ,Y1 ,Y2
- 40070 DATA 000,639,000,479 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40080 DATA 000,000,000,000 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40085 '--------------------
- 40090 ' XB1 XB2 YB1 YB2
- 40230 '
- 40231 DATA 0,123, 0, 22 ' HK2 1
- 40232 DATA 124,168, 5, 22 '記 入 2
- 40233 DATA 169,212, 5, 22 '検 索 3
- 40234 DATA 213,256, 5, 22 '分 析 4
- 40235 DATA 257,300, 5, 22 'カレンダー 5
- 40236 DATA 301,344, 5, 22 '設 定 6
- 40237 DATA 444,567, 0, 22 '日 付 7
- 40238 DATA 568,591, 0, 22 'clock 8
- 40240 DATA 592,615, 0, 22 'help 9
- 40250 DATA 616,639, 0, 22 'END 10
- 40260 '
- 40430 '-------------------- スイッチグループ[2] 確認
- 40432 DATA 3 :'ボタン個数
- 40434 ' X1 ,X2 ,Y1 ,Y2
- 40436 DATA 106,522,258,287 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40438 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40450 '--------------------
- 40460 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40470 DATA 338,369, 6, 23 ' OK 01
- 40480 DATA 370,401, 6, 23 ' NG 02
- 40485 DATA 8, 27, 5, 24 'drag
- 41600 '-------------------- スイッチグループ(3) Helpグループ
- 41602 DATA 6 :'ボタン個数
- 41604 ' X1 ,X2 ,Y1 ,Y2
- 41606 DATA 60,577,100,421 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41608 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41620 '
- 41630 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 41640 DATA 499,512, 25, 38 '前頁
- 41650 DATA 499,512, 39, 52 '前行
- 41660 DATA 499,512,289,302 '次行
- 41670 DATA 499,512,303,316 '次頁
- 41680 DATA 499,512, 6, 19 '終了
- 41690 DATA 6, 17, 7, 18 'drag
- 41830 '-------------------- スイッチグループ[4] デジタル時計
- 41832 DATA 2 :'ボタン個数
- 41834 ' X1 ,X2 ,Y1 ,Y2
- 41836 DATA 46,607,100,306 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41838 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41850 '--------------------
- 41860 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 41870 DATA 543,561, 0, 18 ' end 01
- 41880 DATA 3, 16, 3, 16 ' drag 02
- 49900 '
- 50000 *DCLOCKDATA
- 50010 ' 1,2,3,4,5,6,7
- 50020 DATA 1,1,1,1,1,1,0 '0 (1)
- 50030 DATA 0,1,1,0,0,0,0 '1 ---
- 50040 DATA 1,1,0,1,1,0,1 '2 | |(2)
- 50050 DATA 1,1,1,1,0,0,1 '3 (6)|(7)| ●(8)
- 50060 DATA 0,1,1,0,0,1,1 '4 ---
- 50070 DATA 1,0,1,1,0,1,1 '5 | |(3) ●(9)
- 50080 DATA 1,0,1,1,1,1,1 '6 (5)| |
- 50090 DATA 1,1,1,0,0,0,0 '7 ---
- 50100 DATA 1,1,1,1,1,1,1 '8 (4)
- 50110 DATA 1,1,1,1,0,1,1 '9
- 50120 ' dgx,dgy
- 50200 DATA 80, 40 '(1)
- 50210 DATA 120, 70 '(2)
- 50212 DATA 110,140 '(3)
- 50213 DATA 80,180 '(4)
- 50214 DATA 40,140 '(5)
- 50215 DATA 50, 70 '(6)
- 50216 DATA 80,100 '(7)
- 50217 DATA 280, 80 '(8)
- 50218 DATA 280,140 '(9)
- 50300 ' ofset
- 50310 DATA 0 '1桁
- 50320 DATA 120 '2桁
- 50330 DATA 280 '3桁
- 50340 DATA 400 '4桁
- 50400 '
- 60000 ' 座標確認 DEBUG ROUTINE
- 60010 LOAD@ "e:\work\hk2\tiff\dclock.tif",(0,0)'
- 60020 MOUSE 0:MOUSE 1,0,0,1
- 60030 IF MOUSE(2,1)<>0 THEN STOP
- 60040 IF MOUSE(2,0)=0 THEN 60040
- 60050 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60060 LINE(0,460)-(639,479),PSET,0,BF
- 60070 SYMBOL(0,460),"X="+STR$(X_M)+" Y="+STR$(Y_M),.75!,.75!,6
- 60080 GOTO 60030
- 60090 '
-